package behavior.mediator;

import java.util.ArrayList;
import java.util.List;

/**
 * @author dali
 * @date 2021-07-27 10:52
 * @Description 具体中介
 */

public class ConcreteMediator implements Mediator{
    private List<Colleague> colleagues = new ArrayList<>();
    @Override
    public void register(Colleague colleague) {
        //传入的对象在集合中没有，则添加，并设置该同事的中介者
        if (!colleagues.contains(colleague)) {
            colleagues.add(colleague);
            //不为每个同事设置中介者，他们就不知道中介者是谁，也就无法建立联系
            colleague.setMediator(this);
        }
    }

    @Override
    public void relay(Colleague colleague) {
        //除了当前同事，对其他同事做出响应
        for (Colleague c : colleagues) {
            if (!c.equals(colleague)) {
                c.receive();
            }
        }
    }
}
